1. Technical Field
The present invention relates to a rendering method which uses texture mapping in the field of computer graphics, and more particularly to a rendering method where reflection mapping (also called environment mapping) is applied when a three-dimensional space including an object with a mirror is given.
2. Prior Art
The reflection mapping in VRML (for example, version 2.0), in addition to the OpenGL (trademark of Silicon Graphics Inc.) of a graphic API (application program interface) being now most extensively used, has been positioned as an important reality enhancement method which simply simulates "mirroring" at high speed. The reflection mapping is one of the texture mapping methods and simulates global reflection effects by accessing textures with reflection vectors which are dynamically determined for each vertex together with the movement of a view point, instead of accessing textures with static texture coordinates appendant to the vertices of an object (for example, see N. Greene, "Environment Mapping and Other Applications of World Projections," IEEE Computer Graphics and Applications, Vol. 6, No. 11, 21-29, November 1986).
The texture which is used in the reflection mapping is called a reflection map (or an environment map) and normally describes the surrounding "environments" viewed from a certain point in space. The reflection map adopted in OpenGL is an image in the form called a spherical map equivalent to an image photographed with a fish-eye lens. In addition to the spherical map, there is a cylindrical map used in Quick Time VR (S. E. Chen, "Quick Time VR-An Image-Based Approach to Virtual Environment Navigation," Proc. SIGGRAPH 95, 29-38, 1995) and a cube map or a Mercator map used in RenderMan (S. Upstill, The RenderMan.TM. Companion, Addison-Wesley Publishing Co., 1992).
The reflection map has frequently been used as a substitute for ray tracing, because it is convenient and operated at high speed. However, since the reflection map is made around a certain point in space, it has the inherent problem that the distortion becomes larger as going away from the point and that a global hidden relationship also becomes inaccurate. Particularly, in OpenGL, the reflection mapping, where texture coordinates are automatically generated by a sphere, has another problem. That is, there is the problem that (1) all directions (stereoscopic angle 720.degree.) cannot be covered, (2) distortion is large in the vicinity of the equator of a sphere, and (3) reflection vectors are generated only with a view point coordinate system.
An approach to directly realize reflection mapping by a Z buffer method of software such as the aforementioned RenderMan or Green method and an approach to realize reflection mapping by a sort of ray tracing method such as a Watt method (A. Watt and M. Watt, "Advanced Animation and Rendering Techniques," Addison-Wesley, 1992) are known as a reflection mapping method which does not employ the API of three-dimensional computer graphics (CG) such as OpenGL. However, either output is an image or color value data and not geometric data of a triangle (polygon) with texture coordinates. Furthermore, there is the disadvantage that a view point cannot be moved in real time.
As a method of realizing reflection mapping with hardware, there is hardware by which Phong shading is performed at a pixel level. This hardware has been proposed by Voorhies et al (D. Voorhies and J. Foran, "Reflection Vector Shading Hardware," Proc., SIGGRAPH'94, 163-166, 1994). However, because the hardware is special hardware, it cannot be used by users who have been familiar with API such as OpenGL.